Field of the Invention
Embodiments of the present invention generally relate to a method and apparatus for automatic device program generation.
Description of the Related Art
The use of field programmable gate arrays (FPGAs) and microcontrollers have grown considerably popular. Low manufacturing costs, availability, and customization of controllers have led to a proliferation of microcontrollers (e.g., PIC or ARDUINO and the like) being used by commercial companies and hobbyists alike for creation of devices. Microcontrollers are small computers on a single integrated circuit containing a processor core, and memory that are programmable for processing input/output data in communication with peripherals. Program memory in the form of NOR FLASH or OTP ROM is also often included on the microcontroller chip, as well as a typically small amount of random access memory (RAM). Microcontrollers are typically designed for embedded applications.
However, microcontrollers are generally limited to a given code set that must be within the capacity of on-board memory. As programs grow in complexity, the size of the code required to be stored in memory increases. Often, programmers resort to sacrificing potential programs to conserve usable memory space. In addition, programs are also limited to local functionality and restricted capabilities as defined by the local libraries native to the microcontroller and performance of the processor. At best, basic external communications are limited to interacting with a very small range of applications (e.g., programs stored locally on the microcontroller). Furthermore, programming microcontrollers is very challenging for users as one is to memorize coding commands, understand hierarchies, utilize proper calling syntaxes, and the like. Otherwise, a written program will fail to run or produce errors.
Thus, there is a need in the art for simplifying microcontroller programming and expanding microcontroller capability while maintaining a minimal memory footprint.